#include"Reactor.hpp"
#include"sock.h"
#include"Accepter.hpp"

using namespace ns_sock;
int main()
{
    //创建
    ns_reactor::Reactor* r=new ns_reactor::Reactor;
    //初始化
    r->InitReactort();

    //创建网络套接字
    int listen_sock=Sock::Socket();
    Sock::SetNonBlock(listen_sock);  //为了支持ET模式，把该文件描述符设置为非阻塞
    Sock::Bind(listen_sock,8080);
    Sock::Listen(listen_sock);
    //添加event
    ns_reactor::Event ev;
    ev.sock_=listen_sock;
    ev.r_=r;
    
    ev.RegisterCallback(Accepter,nullptr,nullptr);

    r->AddEvent(ev,EPOLLIN|EPOLLET);   // 设置该sock工作模式为ET
    //运行
    while(true)
    {
        r->Dispatcher(10000);  //timeout单位为毫秒，这里设置为10秒
    }
    return 0;
}